Bar codes are used to provide machine readable identification labels on a wide variety of items. For example, bar codes are used to identify goods and merchandise that are sold in stores or stored in warehouses. Bar codes are also used to provide machine readable tracking numbers on shipping labels in order to identify packages that are handled by package delivery companies.
Once a bar code is read and decoded by a suitable bar code reader, a computer may use the decoded number to access associated data that has been stored in a database. For example, with goods and merchandise, each product has a unique bar code number, and the associated data would identify the product and its price, manufacturer, etc. With a package, the label number would uniquely identify the package, and the associated data would include information such as the size and weight of the package, the origin and destination addresses, and type of service selected (e.g., overnight delivery, second day delivery, etc.).
Bar codes are read by laser scanners or by decoding an image that has been captured by an electronic camera. Most stores rely on laser scanners to scan and decode bar codes. Small package delivery companies such as the assignee of the present invention increasingly utilize electronic cameras to capture two-dimensional images of package surfaces. Once an image is captured, it may be processed to identify and decode a variety of indicia, including bar codes, two-dimensional dense codes, and alphanumeric characters.
Although there are many methods that may be used to decode a bar code, these methods may fail if the bar code itself is degraded or partially obliterated. Depending on the extent of the damage to the bar code, the bar code may be read by rescanning the bar code at a slightly different position or orientation. However, in some cases, the damage or degradation may be extensive enough that no amount of rescanning will be able to recover the lost information.
In most cases, the human readable characters that correspond to the bar code characters are printed adjacent to the bar code. When the bar code is unreadable, the human readable text may be read by an operator and the data manually entered into a system.
The process of manually entering such data is commonplace at grocery stores and the like where bar code readers occasionally fail to successfully read the bar code on a product. Although manually entering bar code data is slower than scanning bar coded merchandise, it is not terribly inconvenient or inefficient in grocery stores and the like where an operator is positioned at each bar code scanner and manually moves the bar coded merchandise over the scanner.
Small package delivery companies image and decode bar codes as packages travel along conveyor belts through terminal facilities. The tracking number, which is decoded from the bar code data, is used by automatic sorting equipment to sort the package and to track its movement through the package delivery company's package handling system. When used in this setting, bar codes are read and decoded very quickly and, in most cases, there are no operators positioned at each imaging station. In these circumstances, there is no convenient method for an operator to read the human readable text and manually enter the tracking number into the tracking computer system.
In some prior art systems, failure to decode a bar code is followed by an attempt to perform optical character recognition (OCR) on the entire string of human readable characters associated with the bar code. Although this approach provides an alternative to manual entry of the bar code data, the likelihood that the entire string of human readable text will be decoded correctly decreases as the length of the character string increases. For example, if an OCR algorithm has a 90% probability of recognizing a given character, the probability that the algorithm will correctly decode a string of 10 human readable characters is 0.9 to the 10th power, which equals approximately 35%.
Therefore, there is a need in the art for a more reliable system for using OCR techniques to assist in decoding damaged bar codes.